package inject

import (
	"gitee.com/kordar/layuiadmin/admin/controller"
	"gitee.com/kordar/layuiadmin/admin/repository"
	"gitee.com/kordar/layuiadmin/admin/service"
	"github.com/kordar/gocrud"
	"github.com/kordar/govalidator"
	"go.uber.org/dig"
)

type RepositoryResult struct {
	dig.Out
	AdminRepos *repository.AdminRepository
}

type ValidatorResult struct {
	dig.Out
	Validators []govalidator.IValidation `group:"govalidator,flatten"`
}

type ServiceResult struct {
	dig.Out
	service.AdminService
	ResourceService []gocrud.ResourceService `group:"resource-services,flatten"`
}

type ControllerResult struct {
	dig.Out
	*controller.AdminController
	*controller.AuthController
	*controller.HomeController
}
